Certain communication systems include at least one master node connected for electronic exchange of information and commands with a number of other nodes on a simple asynchronous data bus. A node is simply a group of electronic circuits which can generate and encode information and place it on the data bus, and decode and process information placed on the data bus by another node. Each node will also typically have some kind of link with the outside physical world, say for receiving information from some type of environmental monitor, or for providing information to or receiving commands from an operator.
A master node is one which can transmit a message absent a request from another node for the message. Master nodes may be either active or inactive. When active, they may transmit messages to other nodes. When inactive, then they may not transmit messages to other nodes. For the system which is involved here, there may be only one active master node at any time on one data bus, although different master nodes will typically become active and then inactive according to some procedure which is irrelevant here. There are typically also individual slave nodes on such a data bus which have no facility for communicating with each other and can only transmit information on the data bus upon receiving a request for it from an active master node. For the purposes of the description which follows, slave nodes and inactive master nodes, i.e. those which may receive a request for information or a command from an active master node, will be referred to as responder nodes.
The particular mode of operation of interest here is referred to as the significant event poll (SEP) mode. In this mode, an active master node transmits on the data bus an interrogation or request message which is directed to at least two of the responder nodes, and possibly even to all of them, and to which any or all of them may respond with an answer message. The answer message may confirm that a requested activity has been completed, or that the responder node has information concerning an external event, say a measure of or a change in some environmental condition. When the likelihood is small that any of the responder nodes will respond, this mode of operation has the potential of saving substantial bus use or occupancy time. There are also situations where a large number of nodes are likely to respond, say when a SEP is used to determine the presence and identity of a number of responder master nodes. This arises, for example, during system start-up, when it is useful to build a table which lists the identity of each master node on the system. Thus, in this mode it is extremely likely that instances will arise where more than one responder node will respond to the interrogation message more or less simultaneously, resulting in what is referred to as a collision of the answer messages.
There is for every message, including the answer messages, a preamble having a specific format, the corruption of which will frequently indicate that a collision or conflict has arisen. However, on occasion, the superimposed waveforms of three or more simultaneous answer message preambles will be such that the master node will not even be able to detect the presence of the start bit, and hence the existence of the answer messages. If that is the case, then the active master node will not be prompted to proceed to an alternative procedure of polling to determine which of the nodes responded to the interrogation message.
In a typical system of this type, messages are transmitted on a twisted pair data bus by differential voltage levels. The differential signaling convention used here provides that a voltage on the + conductor of the twisted pair which exceeds that on the - conductor represents a logical high/Boolean 1 condition, and the reverse voltage condition represents a logical low/Boolean 0. When no signal is being applied to the data bus, the voltage floats and is essentially indeterminate. During transmission at the typical baud or bit rate of 9600 bits per sec., each bit is represented by holding one or the other of the voltage relationships on the data bus for about 104 .mu.sec., although, of course, other bit rates are possible. It is convenient to use, for communicating on the data bus, one of the off-the-shelf microcircuits which include in one package both a parallel-to-serial converter and a serial-to-parallel converter, commonly known as a UART (Universal Asynchronous Receiver/Transmitter). In addition, to provide proper impedance matching for sending and receiving on the data bus, a line driver transmitter and a receiver amplifier are also necessary. Any of various well-known communication driver/receivers suitable for use on a multinode data bus may be used, such as the RS-485, which is explained in more detail in EIA Standard, RS-485, April 1983.
To assure that the receiving node(s) will be properly synchronized so that the message will be correctly received, each byte in every message is preceded by a start bit. That is, at the start of each byte, an RS-485 line driver is designed to apply to the data bus a transition from the logical high/Boolean 1 voltage level to the logical low/Boolean 0 voltage level, and then maintain the logical low for one bit time. The end of a byte is marked by a one-bit time logical high. The first byte in a message may have this logical high which precedes the logical low in the start bit present for a number of bit times. All of the nodes of the system recognize this start bit signal waveform as preceding a byte and thus can properly synchronize themselves on the voltage transition with the transmitting node to receive the byte accurately. The duration of the signal levels in these start bit waveforms is sufficient to unequivocally distinguish them from noise pulses which may simulate the voltage levels of this waveform for brief periods of time.
For a variety of reasons, the responding nodes, when concurrently transmitting, will not provide perfectly in-phase and identical start bit waveforms, particularly with respect to the time from receipt of the interrogation message to the start bit for the first byte of the preamble. It is thus possible that neither the start bit waveforms nor any of the messages when so superimposed will be recognized by the active master node as a start bit. If the presence of a start mark in the answer message is not recognized by the active master node, then the active master node will not be prompted to initiate a poll of the responder nodes to determine which of them have answered the interrogation message. Thus, it is possible that important answer messages will be ignored by the active master node since the start-of-message waveform has been corrupted by the superimposing of several message waveforms.
This problem has been recognized in U.S. Pat. No. 4,689,786 in situations where an answer message is a certainty. In that case, the absence of an answer message can be taken to indicate a collision, which can then be resolved by specific types of retransmission. This differs from the situation here, where there may not be an answer message in response to a significant event poll interrogation message.
U.S. Pat. No. 4,063,220 discloses a system for detecting data collisions by monitoring the signal present on a data bus and comparing this signal with that which was transmitted. Differences are taken to indicate a collision. The active master node in the network to be described has no access to these original transmissions.